package com.example.validatestudy.demos.genericity;

/**
 * @auther: 王振方
 * @date: 2024 02 29 11 34
 * @description: 泛型接口、泛型类、泛型方法
 */
//泛型定义接口
interface Calcu<T extends Object>{
    T getParam(T t);
}

//定义泛型类
public class Computer<T extends Number> implements Calcu<T>{
    //泛型定义类，在方法中使用
    public double add(T a,T b){
        return a.intValue()+b.intValue();
    }

    //泛型定义方法，在方法中使用
    /**
     * @param a 泛型参数
     * @param <N> 声明此方法为泛型方法
     * @return
     */
    public <N extends Number> double add(N a){
        return a.doubleValue();
    }

    @Override
    public T getParam(T t) {
        return t;
    }
}
